using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace DNAide.Web.UI.Styles.Minifier
{
	public class StyleMinifier
	{

		public StyleMinifier()
		{
		}

		public String Minify(string inputStyle)
		{
			inputStyle = Regex.Replace(inputStyle, @"/\*.+?\*/", "", RegexOptions.Singleline);
			inputStyle = inputStyle.Replace("  ", String.Empty);
			inputStyle = inputStyle.Replace("\r", String.Empty);
			inputStyle = inputStyle.Replace("\n", String.Empty);
			inputStyle = inputStyle.Replace("\t", String.Empty);
			inputStyle = inputStyle.Replace(" {", "{");
			inputStyle = inputStyle.Replace("{ ", "{");
			inputStyle = inputStyle.Replace(" :", ":");
			inputStyle = inputStyle.Replace(": ", ":");
			inputStyle = inputStyle.Replace(", ", ",");
			inputStyle = inputStyle.Replace("; ", ";");
			inputStyle = inputStyle.Replace(";}", "}");
			inputStyle = inputStyle.Replace(" }", "}");
			inputStyle = Regex.Replace(inputStyle, @"/\*[^\*]*\*+([^/\*]*\*+)*/", "$1");
			inputStyle = Regex.Replace(inputStyle, @"(?<=[>])\s{2,}(?=[<])|(?<=[>])\s{2,}(?=&nbsp;)|(?<=&ndsp;)\s{2,}(?=[<])", String.Empty);
			return inputStyle;
		}

	}
}
